<?php
class Places_model extends CI_Model{
	
	function add($id_user,$id_google,$reference,$nombre,$categoria,$ciudad,$descripcion,$lat,$long){
		$data = array(
			//'id_google'			=>$id_google,
			'id_usuario'		=>$id_user,
			'nombre'			=>$nombre,
			'ciudad'			=>$ciudad,
			'descripcion'		=>$descripcion,
			'categoria'			=>$categoria,
			'coor_lat'			=>$lat,
			'coor_long'			=>$long,
			//'reference'			=>$reference
		);
		
		$this->db->insert('sitios',$data);
		return $this->db->insert_id();
	}
	
	function categorias(){
		return array('Ciudad','Shopping','atraccion turistica','lugar de comidas','cine'); 
	}
	function myPlaces($id_user){
		$this->db->where('id_usuario', $id_user); 
		return $this->db->get('sitios')->result();
	}
	
	function details($id_lugar){
		$this->db->where('id', $id_lugar); 
		return $this->db->get('sitios')->result();
	}
	
	function places_for_city($city){
		$this->db->where('ciudad', $city); 
		return $this->db->get('sitios')->result();
	}
	function exist($id_place){
		$this->db->where('id_google', $id_place); 
		$query = $this->db->get('sitios');
		return $query->num_rows()>0;
	}
	
	function allPlaces($page,$cant,$col,$dir){
		$order=$col==0?'nombre':'ciudad';
		$this->db->order_by($order,$dir); 
		$this->db->select('id, nombre, ciudad, categoria');
		return $this->db->get('sitios',$cant,$page)->result();
	}
	function cantPlaces(){
		return $this->db->count_all_results('sitios');
	}
	function search($term){
		$this->db->select('nombre, id');
		$this->db->like('nombre', $term); 
		return $this->db->get('sitios')->result();
	}
	function calificar($id_site,$id_user,$calificacion){
		$this->db->where('id_sitio',$id_site);
		$this->db->where('id_usuario',$id_user);
		$q=$this->db->get('calificacion');
		if($q->num_rows()>0){
			$r=$q->result();
			$data = array(
	               'puntuacion' => $calificacion
	            );
			$this->db->where('id_sitio',$id_site);
			$this->db->where('id_usuario',$id_user);
			$this->db->update('calificacion', $data);
		} else{
			$data = array(
					'id_sitio'			=>$id_site,
					'id_usuario'		=>$id_user,
					'puntuacion'		=>$calificacion
				);
			
			$this->db->insert('calificacion',$data);
		}
	}

	function calificacion($id_site){
		$this->db->select('puntuacion');
		$this->db->where('id_sitio',$id_site);
		$q=$this->db->get('calificacion');
		if($q->num_rows()>0){
			$r=$q->result();
			$puntuacion=0;
			foreach($r as $a){
				$puntuacion+=$a->puntuacion;
			}
			return $puntuacion/$q->num_rows();
		}else{
			return 0;
		}
	}
	function calificacionUsuario($id_site,$id_user){
		$this->db->select('puntuacion');
		$this->db->where('id_sitio',$id_site);
		$this->db->where('id_usuario',$id_user);
		$q=$this->db->get('calificacion');
		if($q->num_rows()>0){
			$result=$q->result();
			return $result[0]->puntuacion;
		}
		else return 0;
	}
	
	function ultimosSitios(){
		$this->db->select('id, nombre');
		$this->db->order_by('id','desc');
		$this->db->limit('5');
		$q=$this->db->get('sitios');
		return $q->result();
	}
	function getUser($idPlace){
		$this->db->select('id_usuario');
		$this->db->where('id',$idPlace);
		$q=$this->db->get('sitios');
		if($q->num_rows()>0){
			$result=$q->result();
			return $result[0]->id_usuario;
		}
		else return false;
	}
	function editDesc($idPlace,$descripcion){
		$data = array(
               'descripcion' => $descripcion
            );

		$this->db->where('id', $idPlace);
		$this->db->update('sitios', $data); 
	}
}